package com.songhuan.web.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.songhuan.web.dto.*;
import com.songhuan.web.dto.query.*;
import com.songhuan.web.entity.*;
import com.songhuan.web.tools.dto.*;
import com.songhuan.web.dto.CheckRecordDto;
import com.songhuan.web.dto.CheckStatusInfo;
import com.songhuan.web.dto.query.CheckRecordPagedInput;
import com.songhuan.web.entity.CheckRecord;
import com.songhuan.web.tools.dto.PagedResult;
import lombok.SneakyThrows;

import java.util.List;
import java.util.Map;


/**
 * 打卡记录功能的Service接口的定义清单
 */
public interface CheckRecordService extends IService<CheckRecord> {

    /**
     * 打卡记录的分页查询方法接口定义
     */
    PagedResult<CheckRecordDto> List(CheckRecordPagedInput input) ;
    /**
     * 打卡记录的新增或者修改方法接口定义
     */
    CheckRecordDto CreateOrEdit(CheckRecordDto input);

     /**
     * 获取打卡记录信息
     */
    CheckRecordDto Get(CheckRecordPagedInput input);


    @SneakyThrows
    void CheckMyStatus(CheckRecordDto input);

    @SneakyThrows
    CheckStatusInfo GetClockInfo(CheckRecordDto input);

    @SneakyThrows
    void Check(CheckRecordDto input);

    @SneakyThrows
    List<Map<String,Object>> GetCheckList(CheckRecordDto input);

    @SneakyThrows
    List<Map<String, Object>> GetNeedRepList(CheckRecordDto input);

    CheckSetting pullCheckSetting(CheckRecordDto input);

    void ChangeCheckStatus(AppUserCheckStat input);
}
